package com.papercutting.platform.dto.query;

import lombok.Data;

import javax.validation.constraints.Min;
import java.io.Serializable;

/**
 * 基础查询条件
 */
@Data
public class BaseQuery implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 页码，从1开始
     */
    @Min(value = 1, message = "页码必须大于0")
    private Integer page = 1;
    
    /**
     * 页面大小
     */
    @Min(value = 1, message = "页面大小必须大于0")
    private Integer size = 10;
    
    /**
     * 排序字段
     */
    private String sortField;
    
    /**
     * 排序方向 asc/desc
     */
    private String sortDirection = "desc";
    
    /**
     * 关键字搜索
     */
    private String keyword;
    
    /**
     * 获取偏移量
     */
    public int getOffset() {
        return (page - 1) * size;
    }
    
    /**
     * 获取限制数量
     */
    public int getLimit() {
        return size;
    }
}